﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Imaging;

namespace MOJsdk
{
    public interface IStyle
    {
        /// <summary>
        /// Name
        /// </summary>
        string StyleName { get; }
        /// <summary>
        /// Developer Name
        /// </summary>
        string StyleDeveloper { get; }
        /// <summary>
        /// Version
        /// </summary>
        double StyleVersion { get; }
        /// <summary>
        /// Return style base on INFO
        /// </summary>
        /// <param name="Info"></param>
        /// <returns></returns>
        Style LoadStyle(ElementInfo Info);
        /// <summary>
        /// Return style with specific keyValue
        /// </summary>
        /// <param name="KeyValue"></param>
        /// <returns></returns>
        Style LoadStyleByKeyValue(string KeyValue);
        /// <summary>
        /// Settings control
        /// </summary>
        UserControl StyleSettings { get; }
    }

    public class ElementInfo
    {
        public object Element { get; set; }
        public string ElementID { get; set; }
        public Type ElementType { get; set; }
    }
}